Field of the Invention
The present invention relates to processing information and more particularly to multi-core processing that adjusts core functions based on the performance of executing instructions at the cores.
Description of the Related Art
Computer systems that use more than one central processing unit (CPU) are typically built with identical CPUs. The CPUs may operate at different frequencies but they are essentially identical devices.
Multi-processor computer systems typically execute multiple applications and system software that have varying degrees of computational needs. For example, operating system software and some integer workloads like mcf from the SPECint CPU2006 generally spend most of their time moving data. In contrast, computationally intensive applications like the SPECfp CPU2006 and STREAM programs spend most of their time executing floating point operations. Computational needs vary considerably across workloads. General purpose processors, like those typically found in workstations and servers, are good at handling such a variety of applications but not optimal at all or even any more specific tasks. General purpose processors are designed to incorporate characteristics that are best matched for the general market. When an application set is very limited, task-specific processors and coprocessors are typically used instead of general purpose processors. Some examples of functions that use task-specific processors include video, crypto and vector functions.
Using identical homogeneous general purpose processors in a multi-processor computer system tends to simplify the computer system design while maintaining flexibility to handle a variety of tasks. However, the general purpose processors will not typically provide optimal performance per Watt of power because of performance tradeoffs made to achieve more general flexibility. In addition, process technologies often build different performance/power results on different cores in an integrated circuit having multiple processors due to process variations. The process variations can cause the entire multi-core processor to run at a lowest common denominator for performance and power.